<?php
class NotaFiscaisController extends AppController {

	var $name = 'NotaFiscais';
	var $components = array('Decimals', 'Mov');
	var $paginate = array('order' => 'date_data ASC');

	function index() {
		if($this->data == null){
			if($this->Session->read('data.mes') == null){
				$this->data['mes'] = date('m');
				$this->data['ano'] = date('Y');
			}
			else{
				$this->data['mes'] = $this->Session->read('data.mes');
				$this->data['ano'] = $this->Session->read('data.ano');
			}
		}
		else{
			$this->Session->write('data.mes', $this->data['mes']);
			$this->Session->write('data.ano', $this->data['ano']);
		}
		
		$this->NotaFiscai->recursive = 2;
		if($this->Session->read('Auth.User.tipo_usuario') !== 'A')
			$this->set('notaFiscais', $this->paginate(array('NotaFiscai.user_id' => $this->Session->read('Auth.User.id_user'), "date_data >="=>$this->data['ano']."-".$this->data['mes']."-01", "date_data <="=>$this->data['ano']."-".$this->data['mes']."-31")));
		else {
			$this->set('notaFiscais', $this->paginate(array("date_data >="=>$this->data['ano']."-".$this->data['mes']."-01", "date_data <="=>$this->data['ano']."-".$this->data['mes']."-31")));
		}
		$this->set('mes', $this->data['mes']);
		$this->set('ano', $this->data['ano']);
	}
	
	function valores_mensais(){
		if($this->data == null){
			if($this->Session->read('data.mes') == null){
				$this->data['mes'] = date('m');
				$this->data['ano'] = date('Y');
			}
			else{
				$this->data['mes'] = $this->Session->read('data.mes');
				$this->data['ano'] = $this->Session->read('data.ano');
				$this->data['tipo'] = $this->Session->read('categoria');
			}
		}
		else{
			$this->Session->write('data.mes', $this->data['mes']);
			$this->Session->write('data.ano', $this->data['ano']);
			$this->Session->write('categoria', $this->data['tipo']);
		}
		
		$this->NotaFiscai->recursive = 2;
		$this->paginate = array('limit' => 20000);
		if($this->Session->read('Auth.User.tipo_usuario') !== 'A')
			$this->set('notaFiscais', $this->paginate(array('NotaFiscai.user_id' => $this->Session->read('Auth.User.id_user'), "date_data >="=>$this->data['ano']."-".$this->data['mes']."-01", "date_data <="=>$this->data['ano']."-".$this->data['mes']."-31")));
		else {
			//pr($this->paginate(array("date_data >="=>$this->data['ano']."-".$this->data['mes']."-01", "date_data <="=>$this->data['ano']."-".$this->data['mes']."-31")));
			$this->set('notaFiscais', $this->paginate(array("date_data >="=>$this->data['ano']."-".$this->data['mes']."-01", "date_data <="=>$this->data['ano']."-".$this->data['mes']."-31")));
			//pr($resultado);	
		}
		$this->set('mes', $this->data['mes']);
		$this->set('ano', $this->data['ano']);
		$this->set('tipo', $this->data['tipo']);
		$this->set('tipos', $this->NotaFiscai->Movimento->Produto->Tipo->find('list'));
	}
	
	function valores_saida_mensais(){
		
		if($this->data == null){
			if($this->Session->read('data.mes') == null){
				$this->data['mes'] = date('m');
				$this->data['ano'] = date('Y');
				$this->data['tipo'] = null;
			}
			else{
				$this->data['mes'] = $this->Session->read('data.mes');
				$this->data['ano'] = $this->Session->read('data.ano');
				$this->data['tipo'] = $this->Session->read('categoria');
			}
		}
		else{
			$this->Session->write('data.mes', $this->data['mes']);
			$this->Session->write('data.ano', $this->data['ano']);
			$this->Session->write('categoria', $this->data['tipo']);
		}
		$this->Mov->setData($this->data['mes'], $this->data['ano']);
		$this->NotaFiscai->Movimento->recursive = 0;
		$this->paginate = array('limit' => 20000);
		if($this->Session->read('Auth.User.tipo_usuario') !== 'A')
			$movimentos = $this->NotaFiscai->Movimento->find('all', array("Movimento.quantidade <"=>0, 'Movimento.user_id' => $this->Session->read('Auth.User.id_user'), "Movimento.date_data >="=>$this->data['ano']."-".$this->data['mes']."-01", "Movimento.date_data <="=>$this->data['ano']."-".$this->data['mes']."-31"));
		else {
			//pr($this->paginate(array("date_data >="=>$this->data['ano']."-".$this->data['mes']."-01", "date_data <="=>$this->data['ano']."-".$this->data['mes']."-31")));
			$movimentos = $this->NotaFiscai->Movimento->find('all', array('conditions'=>array("Movimento.quantidade <"=>0, "Movimento.date_historico >="=>$this->data['ano']."-".$this->data['mes']."-01", "Movimento.date_historico <="=>$this->data['ano']."-".$this->data['mes']."-31")));
			//pr($movimentos);	
		}
		foreach($movimentos as &$item){
			$item['Movimento']['valores'] = $this->Mov->getValores($item['Produto']['id_produto'], $this->data['ano'].'-'.$this->data['mes'].'-01');
		}
		//pr($movimentos);
		$this->set('movimentos', $movimentos);
		$this->set('mes', $this->data['mes']);
		$this->set('ano', $this->data['ano']);
		$this->set('tipo', $this->data['tipo']);
		$this->set('tipos', $this->NotaFiscai->Movimento->Produto->Tipo->find('list'));
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Nota fiscal inválida', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('notaFiscai', $this->NotaFiscai->read(null, $id));
	}

	function add() {
		if (!empty($this->data)) {
			$this->NotaFiscai->create();
			$this->data['NotaFiscai']['user_id'] = $this->Session->read('Auth.User.id_user');
			if ($this->NotaFiscai->save($this->data)) {
				$this->Session->setFlash(__('Nota fiscal foi salva com sucesso!', true));
				$this->redirect(array( 'controller'=> 'movimentos', 'action' => 'add', $this->NotaFiscai->id));
			} else {
				$this->Session->setFlash(__('Nota fiscal não foi salva. Por favor, tente novamente!', true));
			}
		}
		$fornecedores = $this->NotaFiscai->Fornecedore->find('all', array('order'=>'razao_social ASC'));
		$this->set(compact('fornecedores'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Nota fiscal inválida', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			$this->Mov->atualizarData($this->data);
			if ($this->NotaFiscai->save($this->data)) {
				$this->Session->setFlash(__('Nota fiscal foi salva com sucesso!', true));
				$this->redirect(array( 'controller'=> 'movimentos', 'action' => 'add', $this->NotaFiscai->id));
			} else {
				$this->Session->setFlash(__('Nota fiscal não foi salva. Por favor, tente novamente!', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->NotaFiscai->read(null, $id);
			$this->data['NotaFiscai']['money_valor'] = number_format($this->data['NotaFiscai']['money_valor']/100, 2, ',', '');
			$this->data['NotaFiscai']['money_IPI'] = number_format($this->data['NotaFiscai']['money_IPI']/100, 2, ',', ''); 
			$this->data['NotaFiscai']['money_desconto'] = number_format($this->data['NotaFiscai']['money_desconto']/100, 2, ',', '');  
		}
		$fornecedores = $this->NotaFiscai->Fornecedore->find('all', array('order'=>'razao_social ASC'));
		$this->set(compact('fornecedores'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Nota fiscal inválida', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->NotaFiscai->delete($id)) {
			$this->Session->setFlash(__('Nota fiscal apagada com sucesso!', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Nota fiscal não foi apagada. Por favor, tente novamente!', true));
		$this->redirect(array('action' => 'index'));
	}
}
?>